Previous: Error recovery, Up: Wisent Parsing [Contents][Index]
Each semantic action is represented by a symbol interned in an
obarray that is part of the LALR(1)
automaton (see Compiling a
grammar). symbol-function on a semantic action
symbol return the semantic action lambda expression.
A semantic action symbol name has the form
nonterminal:index, where
nonterminal is the name of the nonterminal symbol the
action belongs to, and index is an action sequence
number within the scope of nonterminal. For example,
this nonterminal definition:
input: line [input:0] | input line (format "%s %s" $1 $2) [input:1] ;
Will produce two semantic actions, and associated symbols:
input:0A default action that returns $1.
input:1That returns (format "%s %s" $1 $2).
Debugging uses the Lisp debugger to investigate what is happening during execution of semantic actions. Three commands are available to debug semantic actions. They receive two arguments:
Request automaton’s function to invoke debugger each time it is called. function must be a semantic action symbol that exists in automaton.
Undo effect of wisent-debug-on-entry on
automaton’s function.
function must be a semantic action symbol that
exists in automaton.
Show the source of automaton’s semantic action function. function must be a semantic action symbol that exists in automaton.